package com.ctosb.classviewer.clazz.attr;

import com.ctosb.classviewer.ClassReader;
import com.ctosb.classviewer.clazz.cp.CONSTANT_Utf8_info;
import lombok.Data;
import lombok.experimental.Accessors;

@Data
@Accessors(chain = true)
public class SourceFile_attribute extends Attribute_info {

    private short sourcefile_index;

    @Override
    protected void doParse(ClassReader classReader) {
        sourcefile_index = classReader.readShort();
    }

    /**
     * 获取源文件名称。表示被编译的 Class 文件的源文件的名字
     * @return
     */
    public String getSourcefile() {
        return ((CONSTANT_Utf8_info) getClassFile().getConstant_pool()[sourcefile_index]).getValue();
    }
}
